<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link href="common.css" rel="stylesheet" type="text/css">
    <script src="vue.min.js"></script>
</head>
<body>
<div id="div1">
    <div>{{msg}}</div>
    <div>{{sss}}</div><!--computed-->
    <div>{{sss2()}}</div><!--methods-->
    <div>{{sss3}}</div><!--computed -->
</div>
<script>
    var vm = new Vue({
        el : "#div1",
        data:{
            msg : "abc"
        },
        computed:{
            //computed与methods都可实现输出计算后的值，但是computed会进缓存，而methods每次都会调用方法以取得返回值，且methods必须像调用函数那样加（）
            //这样默认只有getter
            sss : function () {
                return this.msg.split("").reverse().join("");
            },
            //这样分别声明getter跟setter
            sss3 : {
                get : function () {
                    return this.msg;
                },
                set : function (paramVal) {
                    this.msg += paramVal;
                }
            }
        },
        methods : {
            sss2 : function () {
                return this.msg.split("").reverse().join("");
            }
        }
    })
    vm.sss3 = "def";//调用了sss3的set方法，传入参数为def，所以最终msg是abcdef
</script>
</body>
</html>